package mx.edu.itschapala.sistemas.septimo.control;
import mx.edu.itschapala.sistemas.septimo.vista.enumeracion.TipoBusqueda2;
import mx.edu.itschapala.sistemas.septimo.modelo.*;
import java.util.*;


public class ClienteLnArreglo implements ClienteLnLocal{
	
private Cliente listaCliente[] = new Cliente[100];
private int indice =0;
private List<Cliente> lista = new ArrayList<>();

public void registrar (Cliente cliente){
	if (indice > 99){
		listaCliente [indice]=cliente;
		indice++;
	}else{

	System.out.println("no hay espacio en memoria");	
	}

}

   public void modificar (Cliente cliente){
	
int pos =-1;
	for (int x=0;x<indice;x++){
		if (listaCliente [x].getid()==cliente.getid()){
			pos=x;
		}
	}
	if (pos!=-1){
		 listaCliente[pos]= cliente;
	}
		
		
	
		
       }



public void eliminar (Cliente cliente){
	
	int pos =-1;
	for(int x=0; x <indice; x++){
		if(listaCliente[x].getid()==cliente.getid()){
			pos=x;
			

		}
	}
     if (pos !=-1){
     	while(pos<indice){
     		listaCliente[pos]=listaCliente[pos+1];
     		pos++;
     	}
     	indice--;
     }

	
}



public Cliente buscarPorid (int id){
	int pos =-1;
	for (int x=0;x<indice;x++){
		System.out.println(listaCliente[x].getid());
		if (listaCliente [x].getid()==id){
			pos=x;
		}
	}
	if (pos!=-1){
		return listaCliente[pos];
	}else{
		
		return null;
	}

	}
	public List<Cliente> getTodos(){
		List<Cliente> lista = new ArrayList<> ();
		for(int x=0;x<indice;x++){
			lista.add(listaCliente[x]);
		}

		return lista;
	}

    
    public List<Cliente> getPorNombre(String Nombre, TipoBusqueda2 Criterio) {
        
        List<Cliente> tmp = new ArrayList<>();
        switch (Criterio) {
            case INICIAR2:
                for (Cliente c : lista) {
                    if (c.getnombre().startsWith(Nombre)) {
                        tmp.add(c);
                    }
                }
                break;
            case CONTIENE2:
                for (Cliente c : lista) {
                    if (c.getnombre().startsWith(Nombre)) {
                        tmp.add(c);
                    }
                }
                break;

        }
        return tmp;
    }

  
}
